package com.un.ebs.core.metadata;

import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
import com.un.ebs.core.enums.DataTypeEnum;
import io.swagger.annotations.ApiParam;
import lombok.Data;

import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.Parameter;
import java.util.List;

@Data
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "_id")
public class ClassInfo implements Serializable{

    private String name;

    private DataTypeEnum type;

    private String description;

    private boolean isArray;

    private boolean isEnum;

    private boolean isGenericType;

    private List<ClassInfo> childs;

    @JsonIgnore
    private Annotation[] annotations;

    @JsonIgnore
    private ApiParam apiParam;

    @JsonIgnore
    private Parameter parameter;
}
